package com.ruoyi.web.service.insect;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.web.domain.insect.InsectRecord;
import com.ruoyi.web.pojo.request.insect.*;
import com.ruoyi.web.pojo.vo.insect.InsectAnalysisVO;
import com.ruoyi.web.pojo.vo.insect.InsectCountDataVO;
import com.ruoyi.web.pojo.vo.insect.InsectHistoryDataVO;

import java.util.List;
import java.util.Set;

/**
 * 昆虫识别记录表 服务类
 * @author fwx
 * @date 2024-01-22 14:20:01
 */
public interface InsectRecordService extends IService<InsectRecord> {


    /**
     * @desc  查询昆虫统计数据
     * @author fwx 2024/1/22 15:13
     **/
    public InsectHistoryDataVO getHistoryHandlerData(InsectHistoryDataRequest request);

    /**
     * @desc  得到昆虫统计的日统计数据
     * @author fwx 2024/1/24 9:25
     **/
    public List<InsectRecord> getHistoryData(InsectHistoryDataRequest request);

    /**
     * @desc  根据昆虫名和日期按日统计
     * @author fwx 2024/3/7 10:28
     **/
    public List<InsectAnalysisVO> getCountByInsectName(InsectListRequest request);

    /**
     * @desc  查询用户下识别出的昆虫名
     * @author fwx 2024/3/6 15:08
     **/
    public Set<String> getInsctName(String start, String end,List<String> deviceIds);

    /**
     * @desc  得到昆虫识别记录的原始数据
     * @author fwx 2024/3/5 11:07
     **/
    public List<InsectRecord> getOriginHistoryData(InsectTopRequest request);

    /**
     * @desc  根据图片id查询识别结果
     * @author fwx 2024/1/24 16:58
     **/
    public List<InsectRecord> getByPhotoIds(List<Long> photoIds);

    /**
     * @desc  昆虫数量统计
     * @author fwx 2024/1/23 16:21
     **/
    public List<InsectCountDataVO> getInsectCountData(InsectSumDataRequest request);

    /**
     * @desc  统计识别种类 和 识别数量
     * @author fwx 2024/1/26 11:08
     **/
    public InsectCountDataVO insectStatistics(InsectSumDataRequest request);

    /**
     * @desc  统计本月,本季度,本年,全部的昆虫数量
     * @author fwx 2024/1/23 17:19
     **/
    public List<InsectCountDataVO> getSpInsectCountData(InsectSumDataRequest request);

    /**
     * @desc  统计本月,本季度,本年 统计账号下的昆虫数量
     * @author fwx 2024/4/12 15:37
     **/
    public List<InsectCountDataVO> getUserInsectCountData(InsectCountDataRequest request);


    /**
     * @desc  得到设备最新的一条识别记录
     * @author fwx 2024/4/3 16:43
     **/
    public InsectRecord getLast(String deviceId);

    /**
     * 获取昆虫始见期的时间
     * @author yaojianbo
     * @date 2024-4-19 14:20:01
     */
    public List<InsectCountDataVO> getInsectStartTime(List<String> insectList,InsectCountDataRequest request);
}
